package com.shuai.blog.mapper;

import com.shuai.blog.entity.ArticleInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface ArticleMapper {
    /**
     * 根据用户id返回文章的数量
     */
    int getCountByUserId(@Param("userId") Integer userId);


    /**
     * 根据用户id返回该用户的所有文章
     */
    List<ArticleInfo> getBlogList(@Param("userId") Integer userId);

    /**
     * 删除文章
     */
    int deleteArt(@Param("userId") Integer userId, @Param("artId") Integer artId);

    ArticleInfo getArtDetail(@Param("artId") Integer artId);

    int incrementVisits(@Param("artId") Integer artId);

    /**
     * 新增文章
     */
    int addBlog(ArticleInfo articleInfo);

    /**
     * 更新文章
     */
    int updateBlog(ArticleInfo articleInfo);

    /**
     * 完成前端的分页查询功能
     */
    List<ArticleInfo> getPageList(@Param("pageSize") Integer pageSize, @Param("offset_") Integer offset_);

    /**
     * 查询数据库中文章的总数量
     */
    int getCount();

    /**
     * 新增草稿
     */
    int addDraft(ArticleInfo articleInfo);

    /**
     * 更新草稿
     */
    int updateDraft(ArticleInfo articleInfo);

    /**
     * 定时发布 -- 存稿
     */
    int onTimePush(ArticleInfo articleInfo);

    /**
     * 定时发布 -- 发布
     */
    int onTimePushing(@Param("artId") Integer artId);

    /**
     * 定时发布 -- 检查
     */
    int deleteDraftBeforePush(ArticleInfo articleInfo);

    /**
     * 根据文章id获得点赞数
     */

    int addLikeNum(@Param("artId") Integer artId);

    int subLikeNum(@Param("artId") Integer artId);
    int getLikeNum(@Param("artId")Integer artId);
}
